package com.ltu.util.search;

import com.ltu.util.datetime.DateUtils;
import com.ltu.util.common.StrUtils;
import org.apache.commons.collections.map.HashedMap;

import java.util.Date;
import java.util.Map;


/**
 * @author 列表类型的 多种时间格式筛选基础封装类型
 */
public class BaseSearchMap {


	/**
	 * @desc 根据时间类型：全部 昨天 最近一周 最近一个月 ，开始时间，结束时间的查询(create_date是 时间类型格式)
	 * @param timeType 按时间查询类型 0 全部 1 昨天 2 最近一周 3 最近一个月
	 * @param startTime 开始时间
	 * @param endTime 结束时间
	 **/
	public static Map<String,Object> getBaseMapByTimeType(Integer timeType,String startTime,String endTime){
		Map<String,Object> searchParams = new HashedMap();
		Date date = new Date();
		String  day="";
		if (!StrUtils.isTrimNull(startTime)||!StrUtils.isTrimNull(endTime)){
//			searchParams.put("GTE_Date_createDate",    DateUtils.parse(startTime+" 00:00:00",DateUtils.DATE_TIME_FORMAT));
//			searchParams.put("LTE_Date_createDate",DateUtils.parse(endTime+" 23:59:59",DateUtils.DATE_TIME_FORMAT));
			searchParams.put("GTE_Date_createDate",   startTime+" 00:00:00");
			searchParams.put("LTE_Date_createDate", endTime+" 23:59:59" );
		}
		else {	
			
			if (StrUtils.isVaileNum(timeType)&&timeType==1){
				Date ld = DateUtils.getTimeByType(date,2,-24);
				  day= DateUtils.format(ld, DateUtils.DATE_FORMAT);
				
				searchParams.put("GTE_Date_createDate",  DateUtils.format(ld,DateUtils.DATE_FORMAT)+" 00:00:00");
				searchParams.put("LTE_Date_createDate",DateUtils.format(ld,DateUtils.DATE_FORMAT)+" 23:59:59");
			}
			else if (StrUtils.isVaileNum(timeType)&&timeType==2){
				Date wd = DateUtils.getTimeByType(date,2,-7*24);
				searchParams.put("GTE_Date_createDate",DateUtils.dateToStr(wd,DateUtils.DATE_TIME_FORMAT));
				searchParams.put("LTE_Date_createDate",DateUtils.dateToStr(date,DateUtils.DATE_TIME_FORMAT));
			}
			else if (StrUtils.isVaileNum(timeType)&&timeType==3){
				Date wd = DateUtils.getTimeByType(date,3,-1);
				searchParams.put("GTE_Date_createDate",DateUtils.format(wd,DateUtils.DATE_TIME_FORMAT));
				searchParams.put("LTE_Date_createDate", DateUtils.format(date,DateUtils.DATE_TIME_FORMAT));
			}
		}
		return searchParams;

	}
}
